#lang racket


(require rosetta)

(provide (all-from-out rosetta)
         (all-defined-out))


(define cyl-ρ cyl-rho)
(define cyl-φ cyl-phi)

(define pol-ρ pol-rho)
(define pol-φ pol-phi)

(define sph-φ sph-phi)
(define sph-θ sph-th)

(define coord? is-coord)
(define u0? is-u0)

(define =c eq-c)
(define +c add-c)
(define -c sub-c)
(define .c dot-c)
(define xc cross-c)
(define collinear-xc collinear-cross-c)
(define </c angle-c)
(define //c collinearity-c)

(define *c mult-c)

(define +x add-x-c)
(define +y add-y-c)
(define +z add-z-c)
(define +xy add-xy-c)
(define +yz add-yz-c)
(define +xz add-xz-c)
(define +xyz add-xyz-c)

(define +cyl add-cyl-c)
(define +pol add-pol-c)
(define +sph add-sph-c)

(define list<-coord list-of-coord)
(define vector<-coord vector-of-coord)
(define coord<-vector coord-of-vector)